package vwg.na.vwm.rh.motorsdk.modelo.procesos.daoimpl;

import java.util.List;

import org.springframework.stereotype.Repository;
import org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional;

import vwg.na.vwm.rh.motorsdk.modelo.procesos.IdeaProceso;
import vwg.na.vwm.rh.motorsdk.modelo.procesos.dao.IdeIdeaAnexosGeneralesDAO;
import vwg.na.vwm.rh.motorsdk.modelo.procesos.entidadesgrales.IdeIdeaAnexosGrales;
import vwg.na.vwm.rh.rhmotor.modelo.dao.GenericDAO;

@Repository
public class IdeIdeaAnexosGeneralesDAOImpl extends
	GenericDAO<IdeIdeaAnexosGrales> implements IdeIdeaAnexosGeneralesDAO {

    @SuppressWarnings("unchecked")
    @Override
    @Transactional(readOnly = true, propagation = Propagation.REQUIRED)
    public List<IdeIdeaAnexosGrales> getAnexosByIdea(IdeaProceso ideaProceso) {
	return getHibernateTemplate().find("FROM IdeIdeaAnexosGrales as i "
		+ "WHERE i.ideaProceso = ?", ideaProceso);
    }

    @SuppressWarnings("unchecked")
    @Override
    @Transactional(readOnly = true, propagation = Propagation.REQUIRED)
    public IdeIdeaAnexosGrales verificarExistenciaAnexoGeneralByIdea(
	    IdeaProceso ideaProceso, IdeIdeaAnexosGrales anexosGrales) {
	List<IdeIdeaAnexosGrales> anexoDB = getHibernateTemplate().find("FROM IdeIdeaAnexosGrales as i "
		+ "WHERE i.ideaProceso = ? and i.controlDocumento = ? ",
		ideaProceso, anexosGrales.getControlDocumento());
	return anexoDB.size() > 0 ? anexoDB.get(0) : null;
    }

}
